package com.balabala.gym_user.service;

import com.balabala.gym_user.pojo.dto.AddRecordDTO;
import com.balabala.gym_user.pojo.dto.AddUserVipCardDto;
import com.balabala.gym_user.pojo.dto.UserVipCardQueryDTO;
import com.balabala.gym_user.pojo.dto.UserVipCardStatusDTO;
import com.balabala.gym_user.pojo.entity.UserVipCard;
import com.balabala.gym_user.pojo.vo.UserVipCardInfoVO;
import com.balabala.gym_user.pojo.vo.UserVipCardPageVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Author 何涛
 * @Date: 2023/05/01/ 17:34
 * @description 用户会员卡service
 */
public interface UserVipCardService extends IService<UserVipCard> {
    /**
     * 根据查询条件返回用户会员卡信息
     * @param userVipCardQueryDto
     * @return
     */
    PageInfo<UserVipCardPageVO> userVipCardPageList(UserVipCardQueryDTO userVipCardQueryDto);

    /**
     * 改变用户会员卡状态
     * @param userVipCardStatusDto
     * @return
     */
    Boolean changeUserVipCardStatus(UserVipCardStatusDTO userVipCardStatusDto);

    /**
     * 根据id查询用户会员卡信息
     * @param user_card_id
     * @return
     */
    UserVipCardInfoVO findUserCardInfo(Long user_card_id);

    /**
     * 根据用户id查询拥有的会员卡名称
     * @param userId
     * @return
     */
    List<String> findUserCardNameByUserId(Long userId);

    /**
     * 会员卡续费操作
     * @param addRecordDTO
     * @return
     */
    Boolean renewal(AddRecordDTO addRecordDTO);

    /**
     * 根据用户id查看用户会员卡信息
     * @param userId
     * @return
     */
    List<UserVipCardInfoVO> getUserCardInfoByUserId(Long userId);

    /**
     * 添加用户会员卡信息
     * @param addUserVipCardDto
     * @return
     */

    Boolean addUserCardInfo(AddUserVipCardDto addUserVipCardDto);
}
